<template>
  <div class="home-classic">
    <h3>经典歌单</h3>
    <div class="wrapper" ref="wrapper">
      <!-- 滚动所需的容器 -->
      <ul class="content" ref="content">
        <li v-for="(item, index) in listData" :key="index">
          <div class="cover">
            <van-image :src="item.cover_url_medium" radius="10" />
            <span>{{ item.access_num | numFilter(2) }}万</span>
          </div>
          <span>{{ item.title }}</span>
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
import BScroll from "better-scroll";
import { betterScrollHorizontal } from "@/common/betterScroll";
export default {
  data() {
    return {
      listData: [],
      id: 59, //分类推荐歌单id
      pageNo: 1, //歌单返回的页码
      paramSize: 6, //歌单每页返回数量
    };
  },
  created() {
    this.getData(this.id, this.pageNo, this.paramSize);
  },
  methods: {
    getData(id, pageNo, paramSize) {
      this.$request("get", "/recommend/playlist", {
        id,
        pageNo,
        paramSize,
      }).then((res) => {
        console.log(res);
        if (res.result == 100) {
          this.listData = res.data.list;
        }
        //调用横向滚动的方法
        betterScrollHorizontal(
          this,
          this.$refs.wrapper,
          this.$refs.content,
          this.listData.length,
          10
        );
      });
    },
    betterScrollHorizontal(num, itemWidth) {
      //计算内容区（content）的宽度
      this.$refs.content.style.width = num * itemWidth + "rem";
      this.$nextTick(() => {
        //wrapper为templater中容器的ref，表示给那个元素来设置滚动
        this.scroll = new BScroll(this.$refs.wrapper, {
          startX: 0, //横向滚动的开始位置
          scrollY: false, //关闭纵向滚动
          scrollX: true, //横向滚动
        });
      });
    },
  },
  // filters: {
  //   numFilter(value, num) {
  //     //把小数位固定为num位
  //     return parseFloat(value / 10000).toFixed(num);
  //   },
  // },
};
</script>

<style scoped>
.cover {
  position: relative;
}
.cover > span {
  position: absolute;
  right: 0;
  bottom: 0.4rem;
  background-color: #a6a0a0;
  color: aliceblue;

  border-radius: 1rem;
  width: 5rem;
}
.wrapper {
  width: 100%; /**容器的宽度就是屏幕的宽度**/
  overflow: hidden;
}
/**content内荣去的宽度要大于wrapper容器的宽度，12个列表项 */
/* ul.content {
  width: calc(12 * 10rem);
} */
ul.content > li {
  /**li默认是块级元素，修改为行内元素，但是要具备块级元素的特性 */
  display: inline-block;
  width: 10rem;
  vertical-align: top; /**垂直方向的对齐方式 */
}
/**li里面有两个元素：div和span，所以使用通配符 */
ul.content > li * {
  margin: 0.1rem; /**里面的元素与li的边缘有个间距 */
}
ul.content li > span {
  font-size: 0.8rem;
  color: #7683ba;
}
</style>
